package string;

public class StringConversion {
    public static void main(String[] args) {
        // 1. 基本类型转字符串
        int num = 123;
        String str1 = String.valueOf(num);        // 方法1
        String str2 = Integer.toString(num);      // 方法2
        String str3 = "" + num;                   // 方法3（不推荐，效率低）

        System.out.println("int转字符串: " + str1 + ", " + str2 + ", " + str3);

        // 2. 字符串转基本类型
        String sNum = "456";
        int i = Integer.parseInt(sNum);           // 字符串转int
        double d = Double.parseDouble("3.14");    // 字符串转double
        boolean b = Boolean.parseBoolean("true"); // 字符串转boolean

        System.out.println("字符串转int: " + i);

        // 3. 包装类与字符串转换
        Integer integer = Integer.valueOf("789"); // 字符串转包装类
        String s = integer.toString();            // 包装类转字符串

        // 4. 日期转字符串
        java.util.Date date = new java.util.Date();
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateStr = sdf.format(date);
        System.out.println("日期转字符串: " + dateStr);

        // 5. 字符串转日期
        try {
            java.util.Date parsedDate = sdf.parse("2023-01-01 12:00:00");
            System.out.println("字符串转日期: " + parsedDate);
        } catch (java.text.ParseException e) {
            e.printStackTrace();
        }

        // 注意：转换失败会抛出异常
        try {
            Integer.parseInt("not a number");
        } catch (NumberFormatException e) {
            System.out.println("转换失败: " + e.getMessage());
        }
    }
}
